package com.xcity.game.combat.attr;

/**
 * 二维属性衍生器<br/>
 * 一维属性（力、智、敏、精、耐）可衍生出二维属性（攻击、防御、暴击、命中...）
 * @author yang.li
 *
 */
@Deprecated
public enum CombatAttributeDerive {

//	/** 物攻 0 */
//	ATTACK_POWER {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return combatable.getSTR() * CombatUtils.attackPowerRatio;
//		}
//
//		@Override
//		public float doDerive(Employee combatable) {
//			return combatable.getSTR() * combatable.getTemplate().getAttackPowerRatio();
//		}
//	},
//	
//	/** 法攻 1 */
//	MAGIC_POWER {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return combatable.getINT() * CombatUtils.magicPowerRatio;
//		}
//
//		@Override
//		public float doDerive(Employee combatable) {
//			return combatable.getINT() * combatable.getTemplate().getMagicPowerRatio();
//		}
//	},
//	
//	/** 物防 2 */
//	DEFENSE {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getSTR() + combatable.getSTA()) * CombatUtils.defenseRatio;
//		}
//	},
//	
//	/** 法防 3 */
//	MAGIC_DEFENSE {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getINT() + combatable.getSTA()) * CombatUtils.magicDefenseRatio;
//		}
//	},
//	
//	/** 暴击 4 */
//	CRIT {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getINT() + combatable.getAGI()) * CombatUtils.critRatio * CombatUtils.critFinalRatio;
//		}
//	},
//	
//	/** 韧性 5 */
//	AVOID_CRIT {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getSTR() + combatable.getAGI()) * CombatUtils.avoidCritRatio;
//		}
//	},
//	
//	/** 生命值 6 */
//	HP {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return combatable.getSTA() * CombatUtils.hpRatio;
//		}
//		
//		@Override
//		public float doDerive(Employee combatable) {
//			return combatable.getSTA() * combatable.getTemplate().getHpRatio();
//		}
//	},
//	
//	/** 出手速度 7 */
//	ATTACK_SPEED {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getSTR() + combatable.getAGI() + combatable.getINT() + combatable.getSPI()) * CombatUtils.attackSpeedRatio;
//		}
//		
//		@Override
//		public float doDerive(Employee combatable) {
//			return (combatable.getSTR() + combatable.getAGI() + combatable.getINT() + combatable.getSPI()) * combatable.getTemplate().getAttackSpeedRatio();
//		}
//	},
//	
//	/** 暴击伤害 8 */
//	@Deprecated CRIT_DAMAGE() {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return 0;
//		}
//	},
//	
//	/** 能量 9 */
//	MP {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return 0;
//		}
//	},
//	
//	/** 最大生命值 10 */
//	MAX_HP {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return HP.doDerive(combatable);
//		}
//	},
//	
//	/** 最大能量值 11 */
//	MAX_MP {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return MP.doDerive(combatable);
//		}
//	},
//	
//	/** 闪避 12 */
//	DODGE {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return combatable.getAGI() * CombatUtils.dodgeRatio * CombatUtils.dodgeFinalRatio;
//		}
//	},
//	
//	/** 抵抗 13 */
//	RESIST {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return combatable.getSPI() * CombatUtils.resistRatio;
//		}
//	},
//	
//	/** 物攻命中 14 */
//	HIT_RATE {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getAGI() + combatable.getSPI()) * CombatUtils.hitRateRatio * CombatUtils.hitRateFinalRatio;
//		}
//	},
//	
//	/** 法攻命中 15 */
//	MAGIC_HIT_RATE {
//		@Override
//		public float doDerive(Combatable combatable) {
//			return (combatable.getINT() + combatable.getSPI()) * CombatUtils.magicHitRateRatio * CombatUtils.magicHitRateFinalRatio;
//		}
//	},
//	
//	;
//	
//	public float doDerive(Employee combatable) {
//		return doDerive((Combatable) combatable);
//	}
//	
//	public abstract float doDerive(Combatable combatable);
	
}
